package com.lainiao.request;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/rm")
public class request01_RequestMethods extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        /**
         * 常用方法
         * 返回值：均是String
         */

        // 获取请求时的完整路径（http开始，？前面结束）
        String url = req.getRequestURL() + "";
        System.out.println("获取请求时的完整路径：" + url);

        // 获取请求时的部分路径（项目站点名开始，？前面结束）
        String uri = req.getRequestURI() + "";
        System.out.println("获取请求时的部分路径：" + uri);

        // 获取请求时的参数字符串（？后面开始，至结束）
        String queryString = req.getQueryString();
        System.out.println("获取请求时的参数字符串：" + queryString);

        // 获取请求方式 （GET POST）
        String  method = req.getMethod();
        System.out.println("获取请求方式：" + method);

        // 获取当前协议版本 （HTTP/1.1）
        String protocol = req.getProtocol();
        System.out.println("获取当前协议版本：" + protocol);

        // 获取项目的站点名 （项目对外访问路径）
        String webApp = req.getContextPath();
        System.out.println("获取项目的站点名：" + webApp);


        /**
         * 获取请求的参数
         * 返回值：均是String
         */

        // 获取指定名称的参数值，返回字符串（重点）
        String uname = req.getParameter("uname");
        System.out.println("uname:" + uname);

        // 获取指定名称的所有参数值，返回字符串数组（用于复选框）
        String[] hobbies = req.getParameterValues("hobby");
        if(hobbies != null && hobbies.length > 0){
            // foreach
            for (String hobby : hobbies) {
                System.out.println("爱好：" + hobby);
            }
        }


    }
}
